<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>EnTech FPK: MecanumDriveSubsystem Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">EnTech FPK
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">FRC Programming Kit by the EnTech 281 GreenVillains</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_mecanum_drive_subsystem-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">MecanumDriveSubsystem Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_mecanum_drive_subsystem_8hpp_source.html">MecanumDriveSubsystem.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MecanumDriveSubsystem:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_mecanum_drive_subsystem.png" usemap="#MecanumDriveSubsystem_map" alt=""/>
  <map id="MecanumDriveSubsystem_map" name="MecanumDriveSubsystem_map">
<area href="class_tank_drive_subsystem.html" alt="TankDriveSubsystem" shape="rect" coords="0,168,158,192"/>
<area href="class_drive_subsystem.html" alt="DriveSubsystem" shape="rect" coords="0,112,158,136"/>
<area href="class_robot_subsystem.html" alt="RobotSubsystem" shape="rect" coords="0,56,158,80"/>
<area href="class_subscriber.html" alt="Subscriber" shape="rect" coords="0,0,158,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem_1_1_dead_zone_modifier.html">DeadZoneModifier</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem_1_1_drive_distance.html">DriveDistance</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem_1_1_drive_start_state.html">DriveStartState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem_1_1_drive_state.html">DriveState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem_1_1_scale_modifier.html">ScaleModifier</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a326a6edfabff8d5bc3ca8dc5ec94c75b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>DriveMode</b> { <b>DriveModeNone</b> = 0, 
<b>DriveModeCartesian</b> = 1, 
<b>DriveModePolar</b> = 2
 }</td></tr>
<tr class="separator:a326a6edfabff8d5bc3ca8dc5ec94c75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a15e7c39657349c6a8f1c5f168306d0e2 inherit pub_types_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>Side</b> { <b>Left</b> = 1, 
<b>Right</b> = 2
 }</td></tr>
<tr class="separator:a15e7c39657349c6a8f1c5f168306d0e2 inherit pub_types_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_class_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_drive_subsystem.html">DriveSubsystem</a></td></tr>
<tr class="memitem:adbbe91a7fd62cf12702601070d50b6eb inherit pub_types_class_drive_subsystem"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a> { <br/>
&#160;&#160;<b>ControlModePercentVBus</b> = PidMotorController::PercentVBus, 
<b>ControlModeSpeed</b> = PidMotorController::Speed, 
<b>ControlModeDistance</b> = PidMotorController::Position, 
<b>ControlModeVoltage</b> = PidMotorController::Voltage, 
<br/>
&#160;&#160;<b>ControlModeCurrent</b> = PidMotorController::Current
<br/>
 }</td></tr>
<tr class="separator:adbbe91a7fd62cf12702601070d50b6eb inherit pub_types_class_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bf21977a6b2911139200f2d2c32871a inherit pub_types_class_drive_subsystem"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_drive_subsystem.html#a8bf21977a6b2911139200f2d2c32871a">SpeedReference</a> { <b>SpeedReferenceNothing</b> = CANJaguar::kSpeedRef_None, 
<b>SpeedReferenceEncoder</b> = CANJaguar::kSpeedRef_Encoder, 
<b>SpeedReferenceInvertedEncoder</b> = CANJaguar::kSpeedRef_InvEncoder, 
<b>SpeedReferenceQuadEncoder</b> = CANJaguar::kSpeedRef_QuadEncoder
 }</td></tr>
<tr class="separator:a8bf21977a6b2911139200f2d2c32871a inherit pub_types_class_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4cb48ca262f5befda36fb53263843d7 inherit pub_types_class_drive_subsystem"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_drive_subsystem.html#ad4cb48ca262f5befda36fb53263843d7">DistanceReference</a> { <b>DistanceReferenceNothing</b> = CANJaguar::kPosRef_None, 
<b>DistanceReferenceQuadEncoder</b> = CANJaguar::kPosRef_QuadEncoder, 
<b>DistanceReferencePotentiometer</b> = CANJaguar::kPosRef_Potentiometer
 }</td></tr>
<tr class="separator:ad4cb48ca262f5befda36fb53263843d7 inherit pub_types_class_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace82b46d96fe6a96f39a564e303de261 inherit pub_types_class_drive_subsystem"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_drive_subsystem.html#ace82b46d96fe6a96f39a564e303de261">NeutralMode</a> { <b>NeutralModeJumper</b> = CANJaguar::kNeutralMode_Jumper, 
<b>NeutralModeBrake</b> = CANJaguar::kNeutralMode_Brake, 
<b>NeutralModeCoast</b> = CANJaguar::kNeutralMode_Coast
 }</td></tr>
<tr class="separator:ace82b46d96fe6a96f39a564e303de261 inherit pub_types_class_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae50a6dbdaac75006deeedf63e059be4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#ae50a6dbdaac75006deeedf63e059be4d">MecanumDriveSubsystem</a> (UINT32 leftFrontMotorChannel, UINT32 leftBackMotorChannel, UINT32 rightFrontMotorChannel, UINT32 rightBackMotorChannel)</td></tr>
<tr class="separator:ae50a6dbdaac75006deeedf63e059be4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3048f62cfb10e2372719efd2d60a3d54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a3048f62cfb10e2372719efd2d60a3d54">MecanumDriveSubsystem</a> (UINT32 leftFrontMotorChannel, UINT32 leftBackMotorChannel, UINT32 rightFrontMotorChannel, UINT32 rightBackMotorChannel, Gyro *gyro)</td></tr>
<tr class="separator:a3048f62cfb10e2372719efd2d60a3d54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aded0630ec496bc87ab26db5f3d3a9e78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#aded0630ec496bc87ab26db5f3d3a9e78">MecanumDriveSubsystem</a> (UINT32 leftFrontMotorChannel, UINT32 leftBackMotorChannel, UINT32 rightFrontMotorChannel, UINT32 rightBackMotorChannel, Gyro &amp;gyro)</td></tr>
<tr class="separator:aded0630ec496bc87ab26db5f3d3a9e78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea41a7b297165837f59b9073b3bc49a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ea41a7b297165837f59b9073b3bc49a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>MecanumDriveSubsystem</b> (boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftBackMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightBackMotor)</td></tr>
<tr class="separator:a4ea41a7b297165837f59b9073b3bc49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b17f6e67fb67168ba4d2386682ed491"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b17f6e67fb67168ba4d2386682ed491"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>MecanumDriveSubsystem</b> (boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftBackMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightBackMotor, Gyro *gyro)</td></tr>
<tr class="separator:a0b17f6e67fb67168ba4d2386682ed491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a579bbc9ba19be1e067834f94112354e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a579bbc9ba19be1e067834f94112354e0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>MecanumDriveSubsystem</b> (boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftBackMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightBackMotor, Gyro &amp;gyro)</td></tr>
<tr class="separator:a579bbc9ba19be1e067834f94112354e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ec203860426e7431a0e5df7e4594ae3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a4ec203860426e7431a0e5df7e4594ae3">MecanumDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightBackMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a4ec203860426e7431a0e5df7e4594ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cd9a575b1c74419803f426038d33f7a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a3cd9a575b1c74419803f426038d33f7a">MecanumDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightBackMotor, Gyro *gyro, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a3cd9a575b1c74419803f426038d33f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e79bd91c25264f93c6723138067d239"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a5e79bd91c25264f93c6723138067d239">MecanumDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightBackMotor)</td></tr>
<tr class="separator:a5e79bd91c25264f93c6723138067d239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd6a486098a4d67b2cc843702338b56"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a8cd6a486098a4d67b2cc843702338b56">MecanumDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightBackMotor, Gyro &amp;gyro)</td></tr>
<tr class="separator:a8cd6a486098a4d67b2cc843702338b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a404a6d6a2ad87a8f602ff55e8c92d013"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a404a6d6a2ad87a8f602ff55e8c92d013">MecanumDriveSubsystem</a> (CANJaguar *leftFrontMotor, CANJaguar *leftBackMotor, CANJaguar *rightFrontMotor, CANJaguar *rightBackMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a404a6d6a2ad87a8f602ff55e8c92d013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a748f23001798ab800539d2a1a711bb8b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a748f23001798ab800539d2a1a711bb8b">MecanumDriveSubsystem</a> (CANJaguar *leftFrontMotor, CANJaguar *leftBackMotor, CANJaguar *rightFrontMotor, CANJaguar *rightBackMotor, Gyro *gyro, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a748f23001798ab800539d2a1a711bb8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a043a49058ab2a8be3dd07e58f269d44e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a043a49058ab2a8be3dd07e58f269d44e">MecanumDriveSubsystem</a> (CANJaguar &amp;leftFrontMotor, CANJaguar &amp;leftBackMotor, CANJaguar &amp;rightFrontMotor, CANJaguar &amp;rightBackMotor)</td></tr>
<tr class="separator:a043a49058ab2a8be3dd07e58f269d44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b843a0486beed3406d0e5e9e6da3835"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b843a0486beed3406d0e5e9e6da3835"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>MecanumDriveSubsystem</b> (CANJaguar &amp;leftFrontMotor, CANJaguar &amp;leftBackMotor, CANJaguar &amp;rightFrontMotor, CANJaguar &amp;rightBackMotor, Gyro &amp;gyro)</td></tr>
<tr class="separator:a4b843a0486beed3406d0e5e9e6da3835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c3c37950c9e122d7e5bd5249532aa08"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a8c3c37950c9e122d7e5bd5249532aa08">MecanumDriveSubsystem</a> (SpeedController *leftFrontMotor, SpeedController *leftBackMotor, SpeedController *rightFrontMotor, SpeedController *rightBackMotor)</td></tr>
<tr class="separator:a8c3c37950c9e122d7e5bd5249532aa08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae99627eedf77db23e7a97addf3a7ec1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#ae99627eedf77db23e7a97addf3a7ec1a">MecanumDriveSubsystem</a> (SpeedController *leftFrontMotor, SpeedController *leftBackMotor, SpeedController *rightFrontMotor, SpeedController *rightBackMotor, Gyro *gyro)</td></tr>
<tr class="separator:ae99627eedf77db23e7a97addf3a7ec1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55602773090af3988d24419b00fe3c74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a55602773090af3988d24419b00fe3c74">MecanumDriveSubsystem</a> (SpeedController &amp;leftFrontMotor, SpeedController &amp;leftBackMotor, SpeedController &amp;rightFrontMotor, SpeedController &amp;rightBackMotor)</td></tr>
<tr class="separator:a55602773090af3988d24419b00fe3c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3a22278b63c9fec0146dbec744a2acc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#ab3a22278b63c9fec0146dbec744a2acc">MecanumDriveSubsystem</a> (SpeedController &amp;leftFrontMotor, SpeedController &amp;leftBackMotor, SpeedController &amp;rightFrontMotor, SpeedController &amp;rightBackMotor, Gyro &amp;gyro)</td></tr>
<tr class="separator:ab3a22278b63c9fec0146dbec744a2acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad81cb42051774595e745081eeac475cf"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#ad81cb42051774595e745081eeac475cf">~MecanumDriveSubsystem</a> ()</td></tr>
<tr class="separator:ad81cb42051774595e745081eeac475cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc196f844ef6906272052ee7b31fb43d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#abc196f844ef6906272052ee7b31fb43d">DriveByCartesian</a> (double x, double y, double rotation)</td></tr>
<tr class="separator:abc196f844ef6906272052ee7b31fb43d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38c34a6ec95d28835e556b555d4528e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a38c34a6ec95d28835e556b555d4528e8">DriveByPolar</a> (double magnitude, double direction, double rotation)</td></tr>
<tr class="separator:a38c34a6ec95d28835e556b555d4528e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf1b8df92fbe6ff89bf3bac36bc5d56"><td class="memItemLeft" align="right" valign="top">boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#acdf1b8df92fbe6ff89bf3bac36bc5d56">DriveDistanceByCartesian</a> (double x, double y, double rotation)</td></tr>
<tr class="separator:acdf1b8df92fbe6ff89bf3bac36bc5d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fb7f0832491420adb4cfb5dd07a0bd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fb7f0832491420adb4cfb5dd07a0bd7"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByCartesian</b> (double x, double y, double rotation, double threshold)</td></tr>
<tr class="separator:a2fb7f0832491420adb4cfb5dd07a0bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b2d146cb401fedc45df215aa6c072f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3b2d146cb401fedc45df215aa6c072f"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByCartesian</b> (const <a class="el" href="struct_cartesian_value.html">CartesianValue</a> &amp;value, double threshold)</td></tr>
<tr class="separator:ac3b2d146cb401fedc45df215aa6c072f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90f47ea5575b5f45f88ce0a2dbaf7ad6"><td class="memItemLeft" align="right" valign="top">boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#a90f47ea5575b5f45f88ce0a2dbaf7ad6">DriveDistanceByPolar</a> (double magnitude, double direction, double rotation)</td></tr>
<tr class="separator:a90f47ea5575b5f45f88ce0a2dbaf7ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a7db0765d419412cfd3941da6456b1cd2 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7db0765d419412cfd3941da6456b1cd2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TankDriveSubsystem</b> (UINT32 leftFrontMotorChannel, UINT32 leftBackMotorChannel, UINT32 rightFrontMotorChannel, UINT32 rightBackMotorChannel)</td></tr>
<tr class="separator:a7db0765d419412cfd3941da6456b1cd2 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b6d5ba2bca1b2d218375fdf93e830e8 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a5b6d5ba2bca1b2d218375fdf93e830e8">TankDriveSubsystem</a> (UINT32 leftMotorChannel, UINT32 rightMotorChannel)</td></tr>
<tr class="separator:a5b6d5ba2bca1b2d218375fdf93e830e8 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81b7920209221386d07f820d618ab530 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a81b7920209221386d07f820d618ab530">TankDriveSubsystem</a> (boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftBackMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightFrontMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightBackMotor)</td></tr>
<tr class="separator:a81b7920209221386d07f820d618ab530 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f732a270a4549fbf76bd34d5cf05844 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a0f732a270a4549fbf76bd34d5cf05844">TankDriveSubsystem</a> (boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; leftMotor, boost::shared_ptr&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt; rightMotor)</td></tr>
<tr class="separator:a0f732a270a4549fbf76bd34d5cf05844 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56aef73731d1e82d080f1b375795a56f inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a56aef73731d1e82d080f1b375795a56f">TankDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightBackMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a56aef73731d1e82d080f1b375795a56f inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2775f62d564eeec0c54ae20d710ff7 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#abb2775f62d564eeec0c54ae20d710ff7">TankDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *leftMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *rightMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:abb2775f62d564eeec0c54ae20d710ff7 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ddd4cc09db581614f99bfc720dd2eb9 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a0ddd4cc09db581614f99bfc720dd2eb9">TankDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftBackMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightFrontMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightBackMotor)</td></tr>
<tr class="separator:a0ddd4cc09db581614f99bfc720dd2eb9 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bb3ac4ae73bfcb77bdacb31052b9d09 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a8bb3ac4ae73bfcb77bdacb31052b9d09">TankDriveSubsystem</a> (<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;leftMotor, <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;rightMotor)</td></tr>
<tr class="separator:a8bb3ac4ae73bfcb77bdacb31052b9d09 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a5ed0dc2d14b7d96e1c827c3a536eba inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a7a5ed0dc2d14b7d96e1c827c3a536eba">TankDriveSubsystem</a> (boost::shared_ptr&lt; CANJaguar &gt; leftFrontMotor, boost::shared_ptr&lt; CANJaguar &gt; leftBackMotor, boost::shared_ptr&lt; CANJaguar &gt; rightFrontMotor, boost::shared_ptr&lt; CANJaguar &gt; rightBackMotor)</td></tr>
<tr class="separator:a7a5ed0dc2d14b7d96e1c827c3a536eba inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05a431f8f439f308e4676c14411c70cf inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a05a431f8f439f308e4676c14411c70cf">TankDriveSubsystem</a> (boost::shared_ptr&lt; CANJaguar &gt; leftMotor, boost::shared_ptr&lt; CANJaguar &gt; rightMotor)</td></tr>
<tr class="separator:a05a431f8f439f308e4676c14411c70cf inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaed15564e6d60c0a4133770a5c1d098d inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#aaed15564e6d60c0a4133770a5c1d098d">TankDriveSubsystem</a> (CANJaguar *leftFrontMotor, CANJaguar *leftBackMotor, CANJaguar *rightFrontMotor, CANJaguar *rightBackMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:aaed15564e6d60c0a4133770a5c1d098d inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01f7150cf6fd4cda290ff33f7bf166fc inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a01f7150cf6fd4cda290ff33f7bf166fc">TankDriveSubsystem</a> (CANJaguar *leftMotor, CANJaguar *rightMotor, bool canDeleteMotors=false)</td></tr>
<tr class="separator:a01f7150cf6fd4cda290ff33f7bf166fc inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8da4ddd63d560f180b6b9ce19dc9de0a inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a8da4ddd63d560f180b6b9ce19dc9de0a">TankDriveSubsystem</a> (CANJaguar &amp;leftFrontMotor, CANJaguar &amp;leftBackMotor, CANJaguar &amp;rightFrontMotor, CANJaguar &amp;rightBackMotor)</td></tr>
<tr class="separator:a8da4ddd63d560f180b6b9ce19dc9de0a inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83ecf54aca8c30faa273c8a73988448c inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a83ecf54aca8c30faa273c8a73988448c">TankDriveSubsystem</a> (CANJaguar &amp;leftMotor, CANJaguar &amp;rightMotor)</td></tr>
<tr class="separator:a83ecf54aca8c30faa273c8a73988448c inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ee157d37267ce8b992f3adc18d4cade inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a8ee157d37267ce8b992f3adc18d4cade">TankDriveSubsystem</a> (SpeedController *leftFrontMotor, SpeedController *leftBackMotor, SpeedController *rightFrontMotor, SpeedController *rightBackMotor)</td></tr>
<tr class="separator:a8ee157d37267ce8b992f3adc18d4cade inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899218d5e877cd66b0f9e5c31e97489f inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a899218d5e877cd66b0f9e5c31e97489f">TankDriveSubsystem</a> (SpeedController *leftMotor, SpeedController *rightMotor)</td></tr>
<tr class="separator:a899218d5e877cd66b0f9e5c31e97489f inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44e553b72f8a2a01fda4e4d561f9a29 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#af44e553b72f8a2a01fda4e4d561f9a29">TankDriveSubsystem</a> (SpeedController &amp;leftFrontMotor, SpeedController &amp;leftBackMotor, SpeedController &amp;rightFrontMotor, SpeedController &amp;rightBackMotor)</td></tr>
<tr class="separator:af44e553b72f8a2a01fda4e4d561f9a29 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61913b7960d71dc73e2887db34bb989f inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a61913b7960d71dc73e2887db34bb989f">TankDriveSubsystem</a> (SpeedController &amp;leftMotor, SpeedController &amp;rightMotor)</td></tr>
<tr class="separator:a61913b7960d71dc73e2887db34bb989f inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2031041d42501363b411ed3a5ac147d inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ad2031041d42501363b411ed3a5ac147d">GetMotorRankCount</a> () const </td></tr>
<tr class="separator:ad2031041d42501363b411ed3a5ac147d inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4a6c1ac368b96b68c9facc346f04591 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ad4a6c1ac368b96b68c9facc346f04591">GetMotorCount</a> () const </td></tr>
<tr class="separator:ad4a6c1ac368b96b68c9facc346f04591 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fd73ce2cc0f6dbb18d1e3a37c34dfde inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a8fd73ce2cc0f6dbb18d1e3a37c34dfde">DriveByTank</a> (double leftValue, double rightValue)</td></tr>
<tr class="separator:a8fd73ce2cc0f6dbb18d1e3a37c34dfde inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48329a9c1073f0a59190648b56404918 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a48329a9c1073f0a59190648b56404918">DriveByMagnitudeAndCurve</a> (double magnitude, double curve)</td></tr>
<tr class="separator:a48329a9c1073f0a59190648b56404918 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25726afb4e9ae5b469578be4c8caa0bf inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25726afb4e9ae5b469578be4c8caa0bf"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByTank</b> (<a class="el" href="struct_tank_value.html">TankValue</a> value, double threshold)</td></tr>
<tr class="separator:a25726afb4e9ae5b469578be4c8caa0bf inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad78c027a2db0d8c8d9f0841a039c386c inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad78c027a2db0d8c8d9f0841a039c386c"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByTank</b> (<a class="el" href="struct_tank_value.html">TankValue</a> value)</td></tr>
<tr class="separator:ad78c027a2db0d8c8d9f0841a039c386c inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad16802c72b67097953da676a521fcde2 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad16802c72b67097953da676a521fcde2"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByTank</b> (double left, double right, double threshold)</td></tr>
<tr class="separator:ad16802c72b67097953da676a521fcde2 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e7c0fe3d48337b3d618c1da80cf71cf inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e7c0fe3d48337b3d618c1da80cf71cf"></a>
boost::shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a><br class="typebreak"/>
&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DriveDistanceByTank</b> (double left, double right)</td></tr>
<tr class="separator:a4e7c0fe3d48337b3d618c1da80cf71cf inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a036170bbfff7c4c27fd6402bd55d3350 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a036170bbfff7c4c27fd6402bd55d3350">SetControlMode</a> (<a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a> controlMode)</td></tr>
<tr class="separator:a036170bbfff7c4c27fd6402bd55d3350 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a373a676d75a14362bc31fe3d4a17c8a1 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a373a676d75a14362bc31fe3d4a17c8a1">GetControlMode</a> ()</td></tr>
<tr class="separator:a373a676d75a14362bc31fe3d4a17c8a1 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f95f6808ce9d475176e67a5c89ce407 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f95f6808ce9d475176e67a5c89ce407"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetNeutralMode</b> (<a class="el" href="class_drive_subsystem.html#ace82b46d96fe6a96f39a564e303de261">NeutralMode</a> neutralMode)</td></tr>
<tr class="separator:a0f95f6808ce9d475176e67a5c89ce407 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2b671ced4e49909c19d13eaebf98b90 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#af2b671ced4e49909c19d13eaebf98b90">GetMotorInvertation</a> (<a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> motorPosition) const </td></tr>
<tr class="separator:af2b671ced4e49909c19d13eaebf98b90 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47d76a87016c06faa71a326c0c644ff5 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a47d76a87016c06faa71a326c0c644ff5">SetMotorInvertations</a> (bool leftFrontIsInverted, bool leftBackIsInverted, bool rightFrontIsInverted, bool rightBackIsInverted)</td></tr>
<tr class="separator:a47d76a87016c06faa71a326c0c644ff5 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac594f9e16f238b40d7d855f895d9bcae inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ac594f9e16f238b40d7d855f895d9bcae">SetMotorInvertations</a> (bool leftIsInverted, bool rightIsInverted)</td></tr>
<tr class="separator:ac594f9e16f238b40d7d855f895d9bcae inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a371ce69e5f9260fc53f30f582e41d2cf inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a371ce69e5f9260fc53f30f582e41d2cf">SetMotorInvertation</a> (<a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> motorPosition, bool isInverted)</td></tr>
<tr class="separator:a371ce69e5f9260fc53f30f582e41d2cf inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52ffae710dd29404babfba5456749fee inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52ffae710dd29404babfba5456749fee"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetMotorInvertation</b> (Side side, UINT32 rank, bool isInverted)</td></tr>
<tr class="separator:a52ffae710dd29404babfba5456749fee inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9dd8286531be9c8aebd74bf20effea5 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#aa9dd8286531be9c8aebd74bf20effea5">SetEncodersCodesPerRevolution</a> (UINT16 codesPerRevolution)</td></tr>
<tr class="separator:aa9dd8286531be9c8aebd74bf20effea5 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4f06a60c711464a175f1d82a828b13b inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ab4f06a60c711464a175f1d82a828b13b">SetEncodersCodesPerRevolution</a> (UINT16 leftFrontCodesPerRevolution, UINT16 leftBackCodesPerRevolution, UINT16 rightFrontCodesPerRevolution, UINT16 rightBackCodesPerRevolution)</td></tr>
<tr class="separator:ab4f06a60c711464a175f1d82a828b13b inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5148286a13682a83196a1b725361639e inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a5148286a13682a83196a1b725361639e">SetEncoderCodesPerRevolution</a> (<a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> motorPosition, UINT16 codesPerRevolution)</td></tr>
<tr class="separator:a5148286a13682a83196a1b725361639e inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff629d559d7caa9b0d09e7297de4c7ca inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff629d559d7caa9b0d09e7297de4c7ca"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetEncoderCodesPerRevolution</b> (Side side, UINT32 rank, UINT16 codesPerRevolution)</td></tr>
<tr class="separator:aff629d559d7caa9b0d09e7297de4c7ca inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e963323135db309d6584387ad5387a8 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a0e963323135db309d6584387ad5387a8">SetPIDs</a> (<a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a> controlMode, double p, double i, double d)</td></tr>
<tr class="separator:a0e963323135db309d6584387ad5387a8 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade9984aff56419959bec12bcaca45de5 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ade9984aff56419959bec12bcaca45de5">SetPID</a> (<a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a> controlMode, <a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> motorPosition, double p, double i, double d)</td></tr>
<tr class="separator:ade9984aff56419959bec12bcaca45de5 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025e857f24a83936ae0a5a65f5b4afde inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a025e857f24a83936ae0a5a65f5b4afde"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetMaximumSpeed</b> (double maximumSpeed)</td></tr>
<tr class="separator:a025e857f24a83936ae0a5a65f5b4afde inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99eb3cb1032956d57cc5fd36879d9f1b inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99eb3cb1032956d57cc5fd36879d9f1b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetMaximumVoltage</b> (double maximumVoltage)</td></tr>
<tr class="separator:a99eb3cb1032956d57cc5fd36879d9f1b inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefd514a3cab9e0a2754506230bc12aff inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefd514a3cab9e0a2754506230bc12aff"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetMaximumCurrent</b> (double maximumCurrent)</td></tr>
<tr class="separator:aefd514a3cab9e0a2754506230bc12aff inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d533c0ce470526e410191e660aef19 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1d533c0ce470526e410191e660aef19"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>GetDistanceThreshold</b> ()</td></tr>
<tr class="separator:aa1d533c0ce470526e410191e660aef19 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad705027e309a9ec03e3232de113701bb inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad705027e309a9ec03e3232de113701bb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetDistanceThreshold</b> (double distanceThreshold)</td></tr>
<tr class="separator:ad705027e309a9ec03e3232de113701bb inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46e5755072a88745e4a48f553c8f9b92 inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46e5755072a88745e4a48f553c8f9b92"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>GetExpiration</b> ()</td></tr>
<tr class="separator:a46e5755072a88745e4a48f553c8f9b92 inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dce816dfcf05c862990907655de550c inherit pub_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dce816dfcf05c862990907655de550c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetExpiration</b> (double expiration)</td></tr>
<tr class="separator:a6dce816dfcf05c862990907655de550c inherit pub_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aab30d5463d2d0c0ce4986c13ba3a4ca5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab30d5463d2d0c0ce4986c13ba3a4ca5"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TankDriveWithPassiveMecanumValueFetcher</b> (GenericHID &amp;leftJoystick, GenericHID &amp;rightJoystick)</td></tr>
<tr class="separator:aab30d5463d2d0c0ce4986c13ba3a4ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa906376eaa76cefb7c0622b58068f6aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa906376eaa76cefb7c0622b58068f6aa"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TankDriveWithActiveMecanumValueFetcher</b> (GenericHID &amp;leftJoystick, GenericHID &amp;rightJoystick)</td></tr>
<tr class="separator:aa906376eaa76cefb7c0622b58068f6aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ef19964788f7518eb777e48ebe35b8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ef19964788f7518eb777e48ebe35b8a"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveNormalStyleWithMecanumValueFetcher</b> (GenericHID &amp;leftJoystick, GenericHID &amp;rightJoystick)</td></tr>
<tr class="separator:a7ef19964788f7518eb777e48ebe35b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada6a066131f2e2f942f6e1bb46488e2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada6a066131f2e2f942f6e1bb46488e2e"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveModernStyleWithMecanumValueFetcher</b> (GenericHID &amp;leftJoystick, GenericHID &amp;rightJoystick)</td></tr>
<tr class="separator:ada6a066131f2e2f942f6e1bb46488e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15c4c13ff6409bde3d1be6b59dcb4457"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15c4c13ff6409bde3d1be6b59dcb4457"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveModernStyleWithMecanumValueFetcher</b> (<a class="el" href="class_xbox_joystick.html">XboxJoystick</a> &amp;joystick)</td></tr>
<tr class="separator:a15c4c13ff6409bde3d1be6b59dcb4457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78d6cb1a1ce4feb3d86120d6525366a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78d6cb1a1ce4feb3d86120d6525366a0"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveNormalStyleWithMecanumValueFetcher</b> (<a class="el" href="class_xbox_joystick.html">XboxJoystick</a> &amp;joystick)</td></tr>
<tr class="separator:a78d6cb1a1ce4feb3d86120d6525366a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a291ba1c7393020ce75603798c5a36e24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a291ba1c7393020ce75603798c5a36e24"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TankDriveWithPassiveMecanumValueFetcher</b> (<a class="el" href="class_xbox_joystick.html">XboxJoystick</a> &amp;joystick)</td></tr>
<tr class="separator:a291ba1c7393020ce75603798c5a36e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa401a72a9b82f9702eef8a1334fda88d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa401a72a9b82f9702eef8a1334fda88d"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TankDriveWithPassiveMecanumValueFetcher</b> (<a class="el" href="class_ps3_joystick.html">Ps3Joystick</a> &amp;joystick)</td></tr>
<tr class="separator:aa401a72a9b82f9702eef8a1334fda88d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac8b9e84fd269c03928bcef7c7f9ba7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac8b9e84fd269c03928bcef7c7f9ba7d"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveModernStyleWithMecanumValueFetcher</b> (<a class="el" href="class_ps3_joystick.html">Ps3Joystick</a> &amp;joystick)</td></tr>
<tr class="separator:aac8b9e84fd269c03928bcef7c7f9ba7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7dc86bb469f19fd3b818746755e9d78"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7dc86bb469f19fd3b818746755e9d78"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveNormalStyleWithMecanumValueFetcher</b> (<a class="el" href="class_ps3_joystick.html">Ps3Joystick</a> &amp;joystick)</td></tr>
<tr class="separator:aa7dc86bb469f19fd3b818746755e9d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e93e6ea624b04e639986915c326d76"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39e93e6ea624b04e639986915c326d76"></a>
static <a class="el" href="struct_cartesian_value.html">CartesianValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TiltDriveStyleWithMecanumValueFetcher</b> (<a class="el" href="class_ps3_joystick.html">Ps3Joystick</a> &amp;joystick)</td></tr>
<tr class="separator:a39e93e6ea624b04e639986915c326d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add9524e3d90507cb3a6c4aa07d54f0ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add9524e3d90507cb3a6c4aa07d54f0ba"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>DriveByCartesian</b> (<a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a> &amp;drive, const <a class="el" href="struct_cartesian_value.html">CartesianValue</a> &amp;value)</td></tr>
<tr class="separator:add9524e3d90507cb3a6c4aa07d54f0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a94519a782cffefc8d72482c353508586 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct_tank_value.html">TankValue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a94519a782cffefc8d72482c353508586">TankDriveFetchValue</a> (GenericHID &amp;leftJoystick, GenericHID &amp;rightJoystick)</td></tr>
<tr class="separator:a94519a782cffefc8d72482c353508586 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0c143fa1b7760d8c20d2a463edb9c47 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0c143fa1b7760d8c20d2a463edb9c47"></a>
static <a class="el" href="struct_tank_value.html">TankValue</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ArcadeDriveFetchValue</b> (GenericHID &amp;joystick)</td></tr>
<tr class="separator:ab0c143fa1b7760d8c20d2a463edb9c47 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa833b59ef3034aa55366d2187a5fc1f2 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa833b59ef3034aa55366d2187a5fc1f2"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>DriveByTank</b> (<a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a> &amp;drive, const <a class="el" href="struct_tank_value.html">TankValue</a> &amp;value)</td></tr>
<tr class="separator:aa833b59ef3034aa55366d2187a5fc1f2 inherit pub_static_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:adf2c3d907fc8271f70dee8eb3be2576f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mecanum_drive_subsystem.html#adf2c3d907fc8271f70dee8eb3be2576f">HandlePeriodic</a> ()</td></tr>
<tr class="separator:adf2c3d907fc8271f70dee8eb3be2576f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:ae91788bb584fba841a4322e4ab533303 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ae91788bb584fba841a4322e4ab533303">HandleAwake</a> ()</td></tr>
<tr class="separator:ae91788bb584fba841a4322e4ab533303 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55532e7537d8f4aa680499fd84483ab7 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#a55532e7537d8f4aa680499fd84483ab7">HandleStop</a> ()</td></tr>
<tr class="separator:a55532e7537d8f4aa680499fd84483ab7 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae234f352cd4dd1b4f2c1f1fc47f1c3bf inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tank_drive_subsystem.html#ae234f352cd4dd1b4f2c1f1fc47f1c3bf">SetMaximumOutput</a> (double maximumOutput)</td></tr>
<tr class="separator:ae234f352cd4dd1b4f2c1f1fc47f1c3bf inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf9576e209afc2fc1042b9b170972e27 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf9576e209afc2fc1042b9b170972e27"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>GetMotorInvertationMultiplier</b> (<a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> position) const </td></tr>
<tr class="separator:aaf9576e209afc2fc1042b9b170972e27 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeab931949359292f9b06476dab6f2ae0 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeab931949359292f9b06476dab6f2ae0"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>GetMotorInvertationMultiplier</b> (Side side, UINT32 rank) const </td></tr>
<tr class="separator:aeab931949359292f9b06476dab6f2ae0 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af293b2765949bae732c291d9917cba5d inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af293b2765949bae732c291d9917cba5d"></a>
<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>GetPidMotorController</b> (<a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a> position)</td></tr>
<tr class="separator:af293b2765949bae732c291d9917cba5d inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f0c1eea6813be76bff850458e7a1030 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f0c1eea6813be76bff850458e7a1030"></a>
<a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>GetPidMotorController</b> (Side side, UINT32 rank)</td></tr>
<tr class="separator:a0f0c1eea6813be76bff850458e7a1030 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af77f54084d35a50e67a15f65e7f74844 inherit pro_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af77f54084d35a50e67a15f65e7f74844"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>FeedSafety</b> ()</td></tr>
<tr class="separator:af77f54084d35a50e67a15f65e7f74844 inherit pro_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_types_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pro_types_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a3368f9a0421f48f0591f2966920ed053 inherit pro_types_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3368f9a0421f48f0591f2966920ed053"></a>
typedef std::map<br class="typebreak"/>
&lt; <a class="el" href="struct_tank_drive_subsystem_1_1_motor_position.html">MotorPosition</a>, <br class="typebreak"/>
boost::shared_ptr<br class="typebreak"/>
&lt; <a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &gt;<br class="typebreak"/>
 &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>MotorIterator</b></td></tr>
<tr class="separator:a3368f9a0421f48f0591f2966920ed053 inherit pro_types_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_methods_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pro_static_methods_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a680be1c1da58fac297d7807f417c8461 inherit pro_static_methods_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a680be1c1da58fac297d7807f417c8461"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><b>GetMotorInvertationMultiplier</b> (bool isInverted)</td></tr>
<tr class="separator:a680be1c1da58fac297d7807f417c8461 inherit pro_static_methods_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_tank_drive_subsystem"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_tank_drive_subsystem')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_tank_drive_subsystem.html">TankDriveSubsystem</a></td></tr>
<tr class="memitem:a1c86ec2ec6209aa01da16e0d445d716e inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c86ec2ec6209aa01da16e0d445d716e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_reversed</b></td></tr>
<tr class="separator:a1c86ec2ec6209aa01da16e0d445d716e inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a409a9c55cc725a66a18c474d8a7874fb inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a409a9c55cc725a66a18c474d8a7874fb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_ownsDrive</b></td></tr>
<tr class="separator:a409a9c55cc725a66a18c474d8a7874fb inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acce76ca08bbfaea81c0df9a616223d42 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acce76ca08bbfaea81c0df9a616223d42"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxOutput</b></td></tr>
<tr class="separator:acce76ca08bbfaea81c0df9a616223d42 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0098dbfb373a68b7932479b917ea0ef3 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0098dbfb373a68b7932479b917ea0ef3"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxSpeed</b></td></tr>
<tr class="separator:a0098dbfb373a68b7932479b917ea0ef3 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90ef71e1847b6f2293050967606d5485 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a90ef71e1847b6f2293050967606d5485"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxVoltage</b></td></tr>
<tr class="separator:a90ef71e1847b6f2293050967606d5485 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83d35c0778ee8914406ef7320a90c2d4 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83d35c0778ee8914406ef7320a90c2d4"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxCurrent</b></td></tr>
<tr class="separator:a83d35c0778ee8914406ef7320a90c2d4 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9edaa280dec6e8518e27342a642d075e inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9edaa280dec6e8518e27342a642d075e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_usesPidEncoderMotors</b></td></tr>
<tr class="separator:a9edaa280dec6e8518e27342a642d075e inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8508696c74382cfdb5f7924fde181038 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8508696c74382cfdb5f7924fde181038"></a>
<a class="el" href="class_drive_subsystem.html#adbbe91a7fd62cf12702601070d50b6eb">ControlMode</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_controlMode</b></td></tr>
<tr class="separator:a8508696c74382cfdb5f7924fde181038 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e2accc1e0579c056f0cbcb2ce77e0a9 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e2accc1e0579c056f0cbcb2ce77e0a9"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>m_counterPeriods</b></td></tr>
<tr class="separator:a0e2accc1e0579c056f0cbcb2ce77e0a9 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0679843421c5031ac329c5d003c89f3 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0679843421c5031ac329c5d003c89f3"></a>
MotorIterator&#160;</td><td class="memItemRight" valign="bottom"><b>m_motorCanidateForCheck</b></td></tr>
<tr class="separator:ae0679843421c5031ac329c5d003c89f3 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f92ae3b916b3dd0b307bc8a21253e28 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f92ae3b916b3dd0b307bc8a21253e28"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_driveUpdated</b></td></tr>
<tr class="separator:a7f92ae3b916b3dd0b307bc8a21253e28 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a1f89985772e91fec17e6a0e82d1c68 inherit pro_attribs_class_tank_drive_subsystem"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a1f89985772e91fec17e6a0e82d1c68"></a>
MotorSafetyHelper *&#160;</td><td class="memItemRight" valign="bottom"><b>m_safetyHelper</b></td></tr>
<tr class="separator:a2a1f89985772e91fec17e6a0e82d1c68 inherit pro_attribs_class_tank_drive_subsystem"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a> class is a class for drive subsystems that use mecanum wheels. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae50a6dbdaac75006deeedf63e059be4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftBackMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightBackMotorChannel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a3048f62cfb10e2372719efd2d60a3d54"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftBackMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightBackMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro *&#160;</td>
          <td class="paramname"><em>gyro</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="aded0630ec496bc87ab26db5f3d3a9e78"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>leftBackMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightFrontMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>rightBackMotorChannel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro &amp;&#160;</td>
          <td class="paramname"><em>gyro</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a4ec203860426e7431a0e5df7e4594ae3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>canDeleteMotors</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a3cd9a575b1c74419803f426038d33f7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro *&#160;</td>
          <td class="paramname"><em>gyro</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>canDeleteMotors</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a5e79bd91c25264f93c6723138067d239"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a8cd6a486098a4d67b2cc843702338b56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_pid_motor_controller.html">PidMotorController</a> &amp;&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro &amp;&#160;</td>
          <td class="paramname"><em>gyro</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a404a6d6a2ad87a8f602ff55e8c92d013"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>canDeleteMotors</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a748f23001798ab800539d2a1a711bb8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro *&#160;</td>
          <td class="paramname"><em>gyro</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>canDeleteMotors</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a043a49058ab2a8be3dd07e58f269d44e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">CANJaguar &amp;&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar &amp;&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar &amp;&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CANJaguar &amp;&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a8c3c37950c9e122d7e5bd5249532aa08"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="ae99627eedf77db23e7a97addf3a7ec1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController *&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro *&#160;</td>
          <td class="paramname"><em>gyro</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="a55602773090af3988d24419b00fe3c74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="ab3a22278b63c9fec0146dbec744a2acc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>leftFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>leftBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>rightFrontMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SpeedController &amp;&#160;</td>
          <td class="paramname"><em>rightBackMotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gyro &amp;&#160;</td>
          <td class="paramname"><em>gyro</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<a class="anchor" id="ad81cb42051774595e745081eeac475cf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MecanumDriveSubsystem::~MecanumDriveSubsystem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor for <a class="el" href="class_mecanum_drive_subsystem.html">MecanumDriveSubsystem</a>. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="abc196f844ef6906272052ee7b31fb43d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MecanumDriveSubsystem::DriveByCartesian </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rotation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Drive the specified amount on a cartesian plane.</p>
<p>Testing shows this function works.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>The amount to drive on the x-axis.  y The amount to drive on the y-axis.  rotation The amount to rotate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a38c34a6ec95d28835e556b555d4528e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MecanumDriveSubsystem::DriveByPolar </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>magnitude</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rotation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Drive the specified amount using polar coordinates.</p>
<p>This function is untested.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">magnitude</td><td>The magnitude to drive.  direction The direction to drive.  rotation The amount to rotate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acdf1b8df92fbe6ff89bf3bac36bc5d56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a>&lt; bool &gt; &gt; MecanumDriveSubsystem::DriveDistanceByCartesian </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rotation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Drive a distance specified by values in cartesian form.</p>
<p>Currently only works if CANJaguars are used. If CANJaguars aren't being used, an exception will be thrown.</p>
<p>This function doesn't seem to work.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Distance to move on the X axis reletive to the robot. </td></tr>
    <tr><td class="paramname">y</td><td>Distance to move on the Y axis reletive to the robot. </td></tr>
    <tr><td class="paramname">rotation</td><td>Amount to rotate.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an ayncronous result of type bool. </dd></dl>

</div>
</div>
<a class="anchor" id="a90f47ea5575b5f45f88ce0a2dbaf7ad6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="class_operation.html">Operation</a>&lt; bool &gt; &gt; MecanumDriveSubsystem::DriveDistanceByPolar </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>magnitude</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rotation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Drive a distance specified by values in polar form.</p>
<p>Currently only works if CANJaguars are used. If CANJaguars aren't being used, an exception will be thrown.</p>
<p>This function is untested.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">magnitude</td><td>The magnitude to move. </td></tr>
    <tr><td class="paramname">direction</td><td>The direction to move. </td></tr>
    <tr><td class="paramname">rotation</td><td>The amount to rotate.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A shared pointer to an ayncronous result of type bool. </dd></dl>

</div>
</div>
<a class="anchor" id="adf2c3d907fc8271f70dee8eb3be2576f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void MecanumDriveSubsystem::HandlePeriodic </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function should be overridden to handle periodic subsystem tasks. It will be called periodically when subsystem is added to robot. </p>

<p>Reimplemented from <a class="el" href="class_tank_drive_subsystem.html#ab834b550c5bc2aa5ea164201287a3ebf">TankDriveSubsystem</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>C:/Users/Sam/Projects/FRC/Libraries/Fpk/Entech-Fpk-Subscribers/Entech-Fpk/Subsystems/<a class="el" href="_mecanum_drive_subsystem_8hpp_source.html">MecanumDriveSubsystem.hpp</a></li>
<li>C:/Users/Sam/Projects/FRC/Libraries/Fpk/Entech-Fpk-Subscribers/Entech-Fpk/Subsystems/MecanumDriveSubsystem.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Aug 12 2013 16:46:50 for EnTech FPK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>
